# 作者: 肖老师
# 2024年11月13日23时51分33秒
# xxxrlmk@163.com
class Person(object):
    def __init__(self, name, age, height):
        self.name = name
        self.age = age
        self.height = height

    def run(self):
        print(f'{self.name} 在跑步')

    def eat(self):
        print('eat')

    def __str__(self):
        """
        重写str，打印对象得到的值，是这个方法返回的值
        :return:
        """
        return self.name

    def __del__(self):
        print('对象将要被销毁')


class Dog:
    def __init__(self, name, color):
        self.name = name
        self.color = color

    def bark(self):
        print('bark')

    def wag_tail(self):
        print('wag_tail')


xiao_ming = Person('小明', 18, 180.5)
xiao_ming.run()

xiao_hong = Person('小红', 18, 178)
xiao_hong.run()

print(id(xiao_ming))
print(id(xiao_hong))
# is可以判断两个对象是否指向同一个空间
print(xiao_hong is xiao_ming)

# 不正规的对象添加属性,别的对象不会拥有这个属性，会让别的开发人员造成误解
xiao_ming.weight = 75
print(xiao_ming.weight)

# print(xiao_hong.weight)  会报错

print(xiao_ming)
print(xiao_hong)
# xiao_ming.__del__() 此种方法调用并不会删除对象，只是会执行del内容
del xiao_ming


print('程序最后')
